{
 "cells": [
  {
   "cell_type": "code",
   "execution_count": 1,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "本接口即将停止更新，请尽快使用Pro版接口：https://tushare.pro/document/2\n",
      "             open   high  close    low      volume  price_change  p_change  \\\n",
      "date                                                                         \n",
      "2023-06-27  28.05  28.75  28.18  27.65  1000901.06          0.17      0.61   \n",
      "2023-06-26  27.69  28.55  28.01  27.36  1065610.12          0.02      0.07   \n",
      "2023-06-21  28.65  29.06  27.99  27.97  1153691.88         -0.74     -2.58   \n",
      "2023-06-20  28.81  29.15  28.73  28.56   879685.50         -0.25     -0.86   \n",
      "2023-06-19  29.33  29.33  28.98  28.55  1198557.62         -0.25     -0.85   \n",
      "2023-06-16  29.24  29.75  29.63  29.00  2113631.25          0.45      1.54   \n",
      "2023-06-15  27.32  29.27  29.18  27.23  2690277.25          1.86      6.81   \n",
      "2023-06-14  27.76  27.88  27.32  27.32   943960.44         -0.43     -1.55   \n",
      "2023-06-13  27.70  27.96  27.75  27.48   751986.94         -0.07     -0.25   \n",
      "2023-06-12  27.54  28.08  27.82  27.18  1000098.00          0.22      0.80   \n",
      "2023-06-09  27.30  27.77  27.60  27.01  1161069.12          0.26      0.95   \n",
      "2023-06-08  27.50  27.84  27.34  27.32   922438.81         -0.16     -0.58   \n",
      "2023-06-07  28.06  28.28  27.50  27.28   937724.31         -0.16     -0.58   \n",
      "2023-06-06  28.39  28.39  27.66  27.64  1142121.62         -0.75     -2.64   \n",
      "2023-06-05  29.20  29.31  28.41  28.34  1080632.12         -0.83     -2.84   \n",
      "2023-06-02  28.80  29.44  29.24  28.55  1075962.75          0.61      2.13   \n",
      "2023-06-01  28.82  29.08  28.63  28.60   948460.19         -0.19     -0.66   \n",
      "2023-05-31  29.40  29.57  28.82  28.78  1143334.12         -0.68     -2.31   \n",
      "2023-05-30  30.00  30.25  29.50  29.01  1656124.88         -0.75     -2.48   \n",
      "2023-05-29  31.74  31.74  30.25  30.02  1575556.75         -1.24     -3.94   \n",
      "\n",
      "               ma5    ma10    ma20       v_ma5      v_ma10      v_ma20  \\\n",
      "date                                                                     \n",
      "2023-06-27  28.378  28.359  28.427  1059689.24  1279840.01  1222091.24   \n",
      "2023-06-26  28.668  28.301  28.593  1282235.27  1295856.81  1243732.82   \n",
      "2023-06-21  28.902  28.234  28.814  1607168.70  1281539.68  1260158.36   \n",
      "2023-06-20  28.768  28.185  29.070  1565222.41  1259942.92  1260134.99   \n",
      "2023-06-19  28.572  28.078  29.279  1539682.70  1286186.54  1246672.10   \n",
      "2023-06-16  28.340  28.021  29.497  1499990.78  1274393.99  1220036.48   \n",
      "2023-06-15  27.934  27.982  29.664  1309478.35  1170627.14  1144565.38   \n",
      "2023-06-14  27.566  27.927  29.859   955910.66   996445.43  1042330.87   \n",
      "2023-06-13  27.602  28.077  30.175   954663.44  1016382.80  1027379.39   \n",
      "2023-06-12  27.584  28.252  30.470  1032690.37  1106796.59  1024253.90   \n",
      "2023-06-09  27.702  28.495  30.770  1048797.20  1164342.47  1020296.84   \n",
      "2023-06-08  28.030  28.884  31.030  1031775.92  1191608.83  1002032.90   \n",
      "2023-06-07  28.288  29.394  31.351  1036980.20  1238777.04   997269.61   \n",
      "2023-06-06  28.552  29.955  31.646  1078102.16  1260327.06   988205.21   \n",
      "2023-06-05  28.920  30.479  31.915  1180902.81  1207157.66   968238.85   \n",
      "2023-06-02  29.288  30.973  32.171  1279887.74  1165678.97   955445.83   \n",
      "2023-06-01  29.738  31.345  32.367  1351441.74  1118503.63   963798.95   \n",
      "2023-05-31  30.500  31.790  32.640  1440573.88  1088216.31   968271.21   \n",
      "2023-05-30  31.358  32.273  32.942  1442551.95  1038375.98   986402.48   \n",
      "2023-05-29  32.038  32.687  33.266  1233412.50   941711.21   943200.43   \n",
      "\n",
      "            turnover  \n",
      "date                  \n",
      "2023-06-27      1.32  \n",
      "2023-06-26      1.41  \n",
      "2023-06-21      1.52  \n",
      "2023-06-20      1.16  \n",
      "2023-06-19      1.58  \n",
      "2023-06-16      2.79  \n",
      "2023-06-15      3.55  \n",
      "2023-06-14      1.25  \n",
      "2023-06-13      0.99  \n",
      "2023-06-12      1.32  \n",
      "2023-06-09      1.53  \n",
      "2023-06-08      1.22  \n",
      "2023-06-07      1.24  \n",
      "2023-06-06      1.51  \n",
      "2023-06-05      1.43  \n",
      "2023-06-02      1.42  \n",
      "2023-06-01      1.25  \n",
      "2023-05-31      1.51  \n",
      "2023-05-30      2.19  \n",
      "2023-05-29      2.08  \n"
     ]
    }
   ],
   "source": [
    "# 1 获得日线行情数据\n",
    "import tushare as ts\n",
    "df = ts.get_hist_data('601012', start='2023-05-27', end='2023-06-27')\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 2,
   "metadata": {},
   "outputs": [],
   "source": [
    "df.to_excel('1.xlsx')  # 存储到本地的1.xlsx"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 3,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "本接口即将停止更新，请尽快使用Pro版接口：https://tushare.pro/document/2\n",
      "                      open   high  close    low   volume  price_change  \\\n",
      "date                                                                     \n",
      "2023-06-28 15:00:00  29.34  29.34  29.32  29.25  40725.3         -0.02   \n",
      "2023-06-28 14:55:00  29.28  29.34  29.34  29.28  69234.2          0.06   \n",
      "2023-06-28 14:50:00  29.30  29.30  29.28  29.27  44038.2         -0.02   \n",
      "2023-06-28 14:45:00  29.34  29.35  29.29  29.28  49909.8         -0.05   \n",
      "2023-06-28 14:40:00  29.23  29.33  29.33  29.23  34147.9          0.10   \n",
      "...                    ...    ...    ...    ...      ...           ...   \n",
      "2023-06-15 14:15:00  29.11  29.17  29.17  29.07  66137.8          0.06   \n",
      "2023-06-15 14:10:00  29.02  29.10  29.10  29.01  61756.8          0.08   \n",
      "2023-06-15 14:05:00  29.03  29.05  29.03  28.96  60902.2          0.00   \n",
      "2023-06-15 14:00:00  28.94  29.05  29.02  28.93  68527.0          0.08   \n",
      "2023-06-15 13:55:00  28.94  28.98  28.95  28.85  67811.8          0.01   \n",
      "\n",
      "                     p_change     ma5    ma10     ma20    v_ma5   v_ma10  \\\n",
      "date                                                                       \n",
      "2023-06-28 15:00:00     -0.07  29.312  29.308  29.2170  47611.1  41944.8   \n",
      "2023-06-28 14:55:00      0.20  29.292  29.300  29.2040  46475.8  40031.9   \n",
      "2023-06-28 14:50:00     -0.07  29.288  29.287  29.1925  38356.1  35358.3   \n",
      "2023-06-28 14:45:00     -0.17  29.308  29.278  29.1870  40178.7  33153.5   \n",
      "2023-06-28 14:40:00      0.34  29.312  29.271  29.1775  37792.9  30764.5   \n",
      "...                       ...     ...     ...      ...      ...      ...   \n",
      "2023-06-15 14:15:00      0.21  29.054  28.873  28.5125  65027.1  74419.5   \n",
      "2023-06-15 14:10:00      0.28  29.006  28.797  28.4575  81612.8  73629.5   \n",
      "2023-06-15 14:05:00      0.00  28.948  28.714  28.4025  85011.3  72712.0   \n",
      "2023-06-15 14:00:00      0.28  28.856  28.629  28.3495  80927.2  70422.4   \n",
      "2023-06-15 13:55:00      0.03  28.758  28.546  28.3065  76916.8  67462.1   \n",
      "\n",
      "                      v_ma20  turnover  \n",
      "date                                    \n",
      "2023-06-28 15:00:00  30409.2      0.11  \n",
      "2023-06-28 14:55:00  29151.3      0.18  \n",
      "2023-06-28 14:50:00  26411.1      0.12  \n",
      "2023-06-28 14:45:00  25008.5      0.13  \n",
      "2023-06-28 14:40:00  24151.5      0.09  \n",
      "...                      ...       ...  \n",
      "2023-06-15 14:15:00  53996.2      0.18  \n",
      "2023-06-15 14:10:00  51599.6      0.16  \n",
      "2023-06-15 14:05:00  49653.9      0.16  \n",
      "2023-06-15 14:00:00  48839.1      0.18  \n",
      "2023-06-15 13:55:00  47201.7      0.18  \n",
      "\n",
      "[350 rows x 14 columns]\n"
     ]
    }
   ],
   "source": [
    "# 2 获得分钟级别的数据\n",
    "df = ts.get_hist_data('601012', ktype='5')\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 4,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   name    open pre_close   price    high     low     bid     ask     volume  \\\n",
      "0  隆基绿能  28.130    28.180  29.320  29.420  27.910  29.320  29.330  217675194   \n",
      "\n",
      "           amount  ...    a2_p  a3_v    a3_p  a4_v    a4_p  a5_v    a5_p  \\\n",
      "0  6310237819.000  ...  29.340  5376  29.350  1758  29.360  1460  29.370   \n",
      "\n",
      "         date      time    code  \n",
      "0  2023-06-28  15:00:00  601012  \n",
      "\n",
      "[1 rows x 33 columns]\n"
     ]
    }
   ],
   "source": [
    "# 3 获得实时行情数据\n",
    "df = ts.get_realtime_quotes('601012')\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 5,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "     code  name   price     bid     ask     volume          amount      time\n",
      "0  601012  隆基绿能  29.320  29.320  29.330  217675194  6310237819.000  15:00:00\n"
     ]
    }
   ],
   "source": [
    "# 如果觉得列数过多，可以通过DataFrame选取列的方法选取相应的列，代码如下\n",
    "df = df[['code', 'name', 'price', 'bid', 'ask', 'volume', 'amount', 'time']]\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 6,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "   name    open pre_close   price    high     low     bid     ask     volume  \\\n",
      "0  隆基绿能  28.130    28.180  29.320  29.420  27.910  29.320  29.330  217675194   \n",
      "1  众泰汽车   2.560     2.570   2.530   2.590   2.460   2.530   2.540   80324659   \n",
      "2  山子股份   1.480     1.490   1.490   1.510   1.440   1.490   1.500   40390974   \n",
      "\n",
      "           amount  ...    a2_p  a3_v    a3_p   a4_v    a4_p  a5_v    a5_p  \\\n",
      "0  6310237819.000  ...  29.340  5376  29.350   1758  29.360  1460  29.370   \n",
      "1   201797537.230  ...   2.550  8452   2.560  10040   2.570  8201   2.580   \n",
      "2    59477718.250  ...   1.510  9660   1.520  10870   1.530  7139   1.540   \n",
      "\n",
      "         date      time    code  \n",
      "0  2023-06-28  15:00:00  601012  \n",
      "1  2023-06-28  15:00:00  000980  \n",
      "2  2023-06-28  15:00:00  000981  \n",
      "\n",
      "[3 rows x 33 columns]\n"
     ]
    }
   ],
   "source": [
    "# 获得多个股票代码的实时数据\n",
    "df = ts.get_realtime_quotes(['601012', '000980', '000981'])\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 7,
   "metadata": {},
   "outputs": [
    {
     "name": "stdout",
     "output_type": "stream",
     "text": [
      "None\n",
      "        time  price    vol type\n",
      "0     091503  28.18     50    -\n",
      "1     091506  28.18    166    -\n",
      "2     091509  28.28    242    -\n",
      "3     091512  28.28    247    -\n",
      "4     091515  28.20    308    -\n",
      "...      ...    ...    ...  ...\n",
      "4893  145651  29.32    497   卖出\n",
      "4894  145654  29.32    530   卖出\n",
      "4895  145657  29.31   1564   买入\n",
      "4896  145700  29.32    653   卖出\n",
      "4897  150000  29.32  26690   买入\n",
      "\n",
      "[4898 rows x 4 columns]\n"
     ]
    }
   ],
   "source": [
    "# 4 获得分笔数据\n",
    "df = ts.get_tick_data('601012', date='2018-12-12', src='tt')\n",
    "print(df)\n",
    "# 获取当日分笔信息\n",
    "df = ts.get_today_ticks('601012')  # 注意在非交易日无法用该代码\n",
    "print(df)"
   ]
  },
  {
   "cell_type": "markdown",
   "metadata": {},
   "source": [
    "keshihua"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 8,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2023-06-27</td>\n",
       "      <td>28.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2023-06-26</td>\n",
       "      <td>28.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2023-06-21</td>\n",
       "      <td>27.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2023-06-20</td>\n",
       "      <td>28.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2023-06-19</td>\n",
       "      <td>28.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2023-06-16</td>\n",
       "      <td>29.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2023-06-15</td>\n",
       "      <td>29.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2023-06-14</td>\n",
       "      <td>27.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2023-06-13</td>\n",
       "      <td>27.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2023-06-12</td>\n",
       "      <td>27.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2023-06-09</td>\n",
       "      <td>27.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2023-06-08</td>\n",
       "      <td>27.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2023-06-07</td>\n",
       "      <td>27.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>2023-06-06</td>\n",
       "      <td>27.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2023-06-05</td>\n",
       "      <td>28.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>2023-06-02</td>\n",
       "      <td>29.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2023-06-01</td>\n",
       "      <td>28.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2023-05-31</td>\n",
       "      <td>28.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>2023-05-30</td>\n",
       "      <td>29.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>2023-05-29</td>\n",
       "      <td>30.25</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          date  close\n",
       "0   2023-06-27  28.18\n",
       "1   2023-06-26  28.01\n",
       "2   2023-06-21  27.99\n",
       "3   2023-06-20  28.73\n",
       "4   2023-06-19  28.98\n",
       "5   2023-06-16  29.63\n",
       "6   2023-06-15  29.18\n",
       "7   2023-06-14  27.32\n",
       "8   2023-06-13  27.75\n",
       "9   2023-06-12  27.82\n",
       "10  2023-06-09  27.60\n",
       "11  2023-06-08  27.34\n",
       "12  2023-06-07  27.50\n",
       "13  2023-06-06  27.66\n",
       "14  2023-06-05  28.41\n",
       "15  2023-06-02  29.24\n",
       "16  2023-06-01  28.63\n",
       "17  2023-05-31  28.82\n",
       "18  2023-05-30  29.50\n",
       "19  2023-05-29  30.25"
      ]
     },
     "execution_count": 8,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "import pandas as pd\n",
    "a1 = pd.read_excel('1.xlsx')  # 读取股价数据\n",
    "a2 = a1[['date', 'close']]  # 只需要股价数据里的日期和收盘价\n",
    "a2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 9,
   "metadata": {},
   "outputs": [],
   "source": [
    "import matplotlib.pyplot as plt\n",
    "import datetime\n",
    "\n",
    "plt.rcParams['font.sans-serif'] = ['NSimSun']\n",
    "plt.rcParams['axes.unicode_minus'] = False  \n",
    "\n",
    "# 读取数据\n",
    "data = a2"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 10,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "text/html": [
       "<div>\n",
       "<style scoped>\n",
       "    .dataframe tbody tr th:only-of-type {\n",
       "        vertical-align: middle;\n",
       "    }\n",
       "\n",
       "    .dataframe tbody tr th {\n",
       "        vertical-align: top;\n",
       "    }\n",
       "\n",
       "    .dataframe thead th {\n",
       "        text-align: right;\n",
       "    }\n",
       "</style>\n",
       "<table border=\"1\" class=\"dataframe\">\n",
       "  <thead>\n",
       "    <tr style=\"text-align: right;\">\n",
       "      <th></th>\n",
       "      <th>date</th>\n",
       "      <th>close</th>\n",
       "    </tr>\n",
       "  </thead>\n",
       "  <tbody>\n",
       "    <tr>\n",
       "      <th>0</th>\n",
       "      <td>2023-06-27</td>\n",
       "      <td>28.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>1</th>\n",
       "      <td>2023-06-26</td>\n",
       "      <td>28.01</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>2</th>\n",
       "      <td>2023-06-21</td>\n",
       "      <td>27.99</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>3</th>\n",
       "      <td>2023-06-20</td>\n",
       "      <td>28.73</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>4</th>\n",
       "      <td>2023-06-19</td>\n",
       "      <td>28.98</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>5</th>\n",
       "      <td>2023-06-16</td>\n",
       "      <td>29.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>6</th>\n",
       "      <td>2023-06-15</td>\n",
       "      <td>29.18</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>7</th>\n",
       "      <td>2023-06-14</td>\n",
       "      <td>27.32</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>8</th>\n",
       "      <td>2023-06-13</td>\n",
       "      <td>27.75</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>9</th>\n",
       "      <td>2023-06-12</td>\n",
       "      <td>27.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>10</th>\n",
       "      <td>2023-06-09</td>\n",
       "      <td>27.60</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>11</th>\n",
       "      <td>2023-06-08</td>\n",
       "      <td>27.34</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>12</th>\n",
       "      <td>2023-06-07</td>\n",
       "      <td>27.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>13</th>\n",
       "      <td>2023-06-06</td>\n",
       "      <td>27.66</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>14</th>\n",
       "      <td>2023-06-05</td>\n",
       "      <td>28.41</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>15</th>\n",
       "      <td>2023-06-02</td>\n",
       "      <td>29.24</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>16</th>\n",
       "      <td>2023-06-01</td>\n",
       "      <td>28.63</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>17</th>\n",
       "      <td>2023-05-31</td>\n",
       "      <td>28.82</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>18</th>\n",
       "      <td>2023-05-30</td>\n",
       "      <td>29.50</td>\n",
       "    </tr>\n",
       "    <tr>\n",
       "      <th>19</th>\n",
       "      <td>2023-05-29</td>\n",
       "      <td>30.25</td>\n",
       "    </tr>\n",
       "  </tbody>\n",
       "</table>\n",
       "</div>"
      ],
      "text/plain": [
       "          date  close\n",
       "0   2023-06-27  28.18\n",
       "1   2023-06-26  28.01\n",
       "2   2023-06-21  27.99\n",
       "3   2023-06-20  28.73\n",
       "4   2023-06-19  28.98\n",
       "5   2023-06-16  29.63\n",
       "6   2023-06-15  29.18\n",
       "7   2023-06-14  27.32\n",
       "8   2023-06-13  27.75\n",
       "9   2023-06-12  27.82\n",
       "10  2023-06-09  27.60\n",
       "11  2023-06-08  27.34\n",
       "12  2023-06-07  27.50\n",
       "13  2023-06-06  27.66\n",
       "14  2023-06-05  28.41\n",
       "15  2023-06-02  29.24\n",
       "16  2023-06-01  28.63\n",
       "17  2023-05-31  28.82\n",
       "18  2023-05-30  29.50\n",
       "19  2023-05-29  30.25"
      ]
     },
     "execution_count": 10,
     "metadata": {},
     "output_type": "execute_result"
    }
   ],
   "source": [
    "data"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 11,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\yzd\\AppData\\Local\\Temp\\ipykernel_11604\\3823075035.py:5: SettingWithCopyWarning: \n",
      "A value is trying to be set on a copy of a slice from a DataFrame.\n",
      "Try using .loc[row_indexer,col_indexer] = value instead\n",
      "\n",
      "See the caveats in the documentation: https://pandas.pydata.org/pandas-docs/stable/user_guide/indexing.html#returning-a-view-versus-a-copy\n",
      "  data['date'] = d  # 将原来的date那一列数据换成新生成的时间戳格式日期\n"
     ]
    }
   ],
   "source": [
    "#  把日期由string字符串格式转为timestamp时间戳格式，方便坐标轴显示\n",
    "d = []\n",
    "for i in range(len(data)):\n",
    "    d.append(datetime.datetime.strptime(data['date'][i], '%Y-%m-%d'))\n",
    "data['date'] = d  # 将原来的date那一列数据换成新生成的时间戳格式日期\n",
    "\n"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 12,
   "metadata": {},
   "outputs": [
    {
     "name": "stderr",
     "output_type": "stream",
     "text": [
      "C:\\Users\\yzd\\anaconda3\\lib\\site-packages\\IPython\\core\\pylabtools.py:151: UserWarning: Glyph 20998 (\\N{CJK UNIFIED IDEOGRAPH-5206}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n",
      "C:\\Users\\yzd\\anaconda3\\lib\\site-packages\\IPython\\core\\pylabtools.py:151: UserWarning: Glyph 25968 (\\N{CJK UNIFIED IDEOGRAPH-6570}) missing from current font.\n",
      "  fig.canvas.print_figure(bytes_io, **kw)\n"
     ]
    },
    {
     "data": {
      "image/png": "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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "#  数据可视化并设置双坐标轴\n",
    "plt.plot(data['date'], data['close'], linestyle='--', label='分数')\n",
    "\n",
    "plt.xticks(rotation=45)  # 设置x轴刻度显示角度\n",
    "plt.legend(loc='upper left')  # 分数的图例设置在左上角\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": 13,
   "metadata": {},
   "outputs": [
    {
     "data": {
      "image/png": "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9a666ipt3749eJszZ05YhwYAALEroS4rv/POOyH3n3/+ebVr106fffaZLr300uDypKQkZWRkhGdCAADQpDTonI/S0lJJUuvWrUOWL1y4UO3atdNZZ52l22+/XTt37jzm96isrFRZWVnIDQAANF31Lh9mpvHjx+viiy9W165dg8tzc3P10ksvacGCBXriiSdUUFCgAQMGqLKy8qjfJz8/X6mpqcFbdnZ2fUcCAAAxoE6HXQ43duxYrVq1Sh988EHI8mHDhgX/u2vXrurVq5c6dOig2bNna+jQoUd8n8mTJ2v8+PHB+2VlZRQQAACasHqVj7vuukt/+9vftHjxYrVv3/6462ZmZqpDhw5av379UR9PSkpSUlJSfcYAAAAxqE7lw8x011136fXXX9fChQvVsWPHE37N7t27VVRUpMzMzHoPCQAAmo46nfMxZswY/elPf9KsWbOUkpKi4uJiFRcXa9++fZKkb7/9VhMmTNBHH32kwsJCLVy4UIMHD1bbtm11zTXXNEoAAAAQW+q05+OZZ56RJPXv3z9k+fPPP6/bbrtN8fHxWr16tV588UXt3btXmZmZuuyyy/Tqq68qJSUlbEMDAIDYVefDLseTnJysuXPnNmggAADQtPHZLgAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyqU/nIz8/XBRdcoJSUFLVr105DhgzRunXrQtYxM+Xl5SkrK0vJycnq37+/1qxZE9ahAQBA7KpT+Vi0aJHGjBmjjz/+WPPnz1d1dbUGDRqkioqK4DqPPfaYpk6dqmnTpqmgoEAZGRm64oorVF5eHvbhAQBA7Emoy8rvvPNOyP3nn39e7dq102effaZLL71UZqYnn3xS999/v4YOHSpJmjlzptLT0zVr1izdcccd4ZscAADEpAad81FaWipJat26tSRp48aNKi4u1qBBg4LrJCUlqV+/flq6dGlDngoAADQRddrzcTgz0/jx43XxxRera9eukqTi4mJJUnp6esi66enp2rRp01G/T2VlpSorK4P3y8rK6jsSAACIAfXe8zF27FitWrVKL7/88hGPBQKBkPtmdsSyQ/Lz85Wamhq8ZWdn13ckAAAQA+pVPu666y797W9/0/vvv6/27dsHl2dkZEj6xx6QQ3bu3HnE3pBDJk+erNLS0uCtqKioPiMBAIAYUafyYWYaO3asXnvtNS1YsEAdO3YMebxjx47KyMjQ/Pnzg8uqqqq0aNEiXXTRRUf9nklJSWrVqlXIDQAANF11OudjzJgxmjVrlt58802lpKQE93CkpqYqOTlZgUBA48aN05QpU5STk6OcnBxNmTJFLVq00PDhwxslAAAAiC11Kh/PPPOMJKl///4hy59//nnddtttkqSJEydq3759Gj16tEpKStSnTx/NmzdPKSkpYRkYAADEtjqVDzM74TqBQEB5eXnKy8ur70wAAKAJ47NdAACAU5QPAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATlE+AACAU5QPAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATlE+AACAU5QPAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATlE+AACAU5QPAADgFOUDAAA4RfkAAABOUT4AAIBTlA8AAOAU5QMAADhF+QAAAE5RPgAAgFOUDwAA4BTlAwAAOEX5AAAATtW5fCxevFiDBw9WVlaWAoGA3njjjZDHb7vtNgUCgZDbhRdeGK55AQBAjKtz+aioqFD37t01bdq0Y65z1VVXafv27cHbnDlzGjQkAABoOhLq+gW5ubnKzc097jpJSUnKyMio91AAAKDpapRzPhYuXKh27drprLPO0u23366dO3cec93KykqVlZWF3AAAQNMV9vKRm5url156SQsWLNATTzyhgoICDRgwQJWVlUddPz8/X6mpqcFbdnZ2uEcCAABRpM6HXU5k2LBhwf/u2rWrevXqpQ4dOmj27NkaOnToEetPnjxZ48ePD94vKyujgAAA0ISFvXx8X2Zmpjp06KD169cf9fGkpCQlJSU19hgAACBKNPp1Pnbv3q2ioiJlZmY29lMBAIAYUOc9H99++62+/vrr4P2NGzdqxYoVat26tVq3bq28vDxde+21yszMVGFhoe677z61bdtW11xzTVgHBwAAsanO5WPZsmW67LLLgvcPna8xYsQIPfPMM1q9erVefPFF7d27V5mZmbrsssv06quvKiUlJXxTAwCAmFXn8tG/f3+Z2TEfnzt3boMGAgAATRuf7QIAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMApygcAAHCK8gEAAJyifAAAAKcoHwAAwCnKBwAAcIryAQAAnKJ8AAAApygfAADAKcoHAABwivIBAACconwAAACnKB8AAMCpOpePxYsXa/DgwcrKylIgENAbb7wR8riZKS8vT1lZWUpOTlb//v21Zs2acM0LAABiXJ3LR0VFhbp3765p06Yd9fHHHntMU6dO1bRp01RQUKCMjAxdccUVKi8vb/CwAAAg9iXU9Qtyc3OVm5t71MfMTE8++aTuv/9+DR06VJI0c+ZMpaena9asWbrjjjsaNi0AAIh5YT3nY+PGjSouLtagQYOCy5KSktSvXz8tXbr0qF9TWVmpsrKykBsAAGi6wlo+iouLJUnp6ekhy9PT04OPfV9+fr5SU1ODt+zs7HCOBAAAokyjvNslEAiE3DezI5YdMnnyZJWWlgZvRUVFjTESAACIEnU+5+N4MjIyJB3cA5KZmRlcvnPnziP2hhySlJSkpKSkcI4BAACiWFj3fHTs2FEZGRmaP39+cFlVVZUWLVqkiy66KJxPBQAAYlSd93x8++23+vrrr4P3N27cqBUrVqh169Y644wzNG7cOE2ZMkU5OTnKycnRlClT1KJFCw0fPjysgwMA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\n",
      "text/plain": [
       "<Figure size 640x480 with 1 Axes>"
      ]
     },
     "metadata": {},
     "output_type": "display_data"
    }
   ],
   "source": [
    "plt.bar(data['date'], data['close'])\n",
    "plt.xticks(rotation=45)  # 设置x轴刻度显示角度\n",
    "plt.legend(loc='upper left')  # 分数的图例设置在左上角\n",
    "plt.show()"
   ]
  },
  {
   "cell_type": "code",
   "execution_count": null,
   "metadata": {},
   "outputs": [],
   "source": []
  }
 ],
 "metadata": {
  "kernelspec": {
   "display_name": "Python 3 (ipykernel)",
   "language": "python",
   "name": "python3"
  },
  "language_info": {
   "codemirror_mode": {
    "name": "ipython",
    "version": 3
   },
   "file_extension": ".py",
   "mimetype": "text/x-python",
   "name": "python",
   "nbconvert_exporter": "python",
   "pygments_lexer": "ipython3",
   "version": "3.9.13"
  }
 },
 "nbformat": 4,
 "nbformat_minor": 4
}
